package com.example.demo.service.weCon;

import com.example.demo.enums.WeConFunctionType;
import java.util.Map;
import javax.validation.constraints.NotNull;
import org.springframework.validation.annotation.Validated;

/**
 * 企业微信service
 *
 * @author jack
 * @data 2021/8/11 4:00 下午
 */
@Validated
public interface WeConService {

  /**
   * 获取token
   *
   * @param functionType
   * @return
   */
  String getToken(@NotNull(message = "functionType 不能为空") WeConFunctionType functionType);

  /**
   * 生成 企业微信api url 拼接accessToken
   *
   * @param url
   * @param functionType
   * @return
   */
  String generateWeConUrl(@NotNull String url,
      @NotNull(message = "functionType 不能为空") WeConFunctionType functionType);

  /**
   * 生成 企业微信api url 拼接accessToken
   *
   * @param url
   * @param functionType
   * @param paramMap     额外需要拼接的参数
   * @return
   */
  String generateWeConUrl(@NotNull String url,
      @NotNull(message = "functionType 不能为空") WeConFunctionType functionType,
      Map<String, Object> paramMap);
}
